/*
 *  AnimSet.h
 *  glow
 *
 *  Created by sunjun on 11-6-14.
 *  Copyright 2011 sunstdio. All rights reserved.
 *
 */
//////////////////////////////////////////////////////////////////////////

#ifndef __AnimSet__
#define __AnimSet__

//////////////////////////////////////////////////////////////////////////

#if defined __cplusplus

//////////////////////////////////////////////////////////////////////////

#include <GReference.h>

//////////////////////////////////////////////////////////////////////////

NAMESPACE_BEGIN(Engine)

//////////////////////////////////////////////////////////////////////////	

	typedef GPtr<class AnimSet>AnimSetPtr;

	//////////////////////////////////////////////////////////////////////////

	// this class provides an object-oriented anim set interface.
	class AnimSet: public GReference
	{
	public:
		// constructor
		AnimSet();

		// destructor
		virtual ~AnimSet();

		// load the animation set data
		VOID Load(const GData* data);

		// create the bone
		AnimBone* CreateBone();

	private:		
		AnimBone* CreateBone(const BoneFrame* bf);

	private:
		BoneFramePtr mRootPtr;
		std::list<AnimSequencePtr>mSequences;

	private: friend class Pawn;
	};

//////////////////////////////////////////////////////////////////////////

NAMESPACE_END

//////////////////////////////////////////////////////////////////////////

#endif // __cplusplus

//////////////////////////////////////////////////////////////////////////

#endif // __AnimSet__

//////////////////////////////////////////////////////////////////////////